package cn.iocoder.lw.module.core.controller.admin.house.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

@Schema(description = "管理后台 - 核心房源 Response VO")
@Data
public class CoreHouseRespVO {

    @Schema(description = "房源编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    private Long id;

    @Schema(description = "项目编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Long projectId;

    @Schema(description = "项目名称", example = "示例项目")
    private String projectName;

    @Schema(description = "小区名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "示例小区")
    private String communityName;

    @Schema(description = "楼栋", requiredMode = Schema.RequiredMode.REQUIRED, example = "1号楼")
    private String building;

    @Schema(description = "楼层", requiredMode = Schema.RequiredMode.REQUIRED, example = "5层")
    private String floor;

    @Schema(description = "房间号", requiredMode = Schema.RequiredMode.REQUIRED, example = "501")
    private String roomNumber;

    @Schema(description = "完整房号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1号楼-5层-501")
    private String fullRoomNumber;

    @Schema(description = "经度", example = "116.397128")
    private BigDecimal longitude;

    @Schema(description = "纬度", example = "39.916527")
    private BigDecimal latitude;

    @Schema(description = "水表编号", example = "W20230001")
    private String waterMeterNumber;

    @Schema(description = "电表编号", example = "E20230001")
    private String electricityMeterNumber;

    @Schema(description = "门锁编号", example = "L20230001")
    private String lockNumber;

    @Schema(description = "房源类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Integer houseType;

    @Schema(description = "房源类型名称", example = "住宅")
    private String houseTypeName;

    @Schema(description = "房源面积（平方米）", requiredMode = Schema.RequiredMode.REQUIRED, example = "85.5")
    private BigDecimal area;

    @Schema(description = "房源状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "0")
    private Integer status;

    @Schema(description = "房源状态名称", example = "空置")
    private String statusName;

    @Schema(description = "租金（元/月）", example = "3500.00")
    private BigDecimal rent;

    @Schema(description = "房源描述", example = "精装修两室一厅，采光良好")
    private String description;

    @Schema(description = "联系人姓名", example = "张三")
    private String contactName;

    @Schema(description = "联系人手机号", example = "13800138000")
    private String contactPhone;

    @Schema(description = "备注", example = "该房源朝南，交通便利")
    private String remark;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private LocalDateTime createTime;

    @Schema(description = "更新时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private LocalDateTime updateTime;

    @Schema(description = "负责人用户名", example = "张三")
    private String ownerUserName;

    @Schema(description = "负责人部门名", example = "运营部")
    private String ownerDeptName;
    
    
    private Integer pageSize;

}